﻿Imports Capa_de_Acceso_a_Datos

Public Class frmSeleccionarPresentacion

    Public FarmaciaId As Integer
    Private vistaPresentaciones As DataView
    Public frmLlamada As String

    Private Sub frmSeleccionarPresentacion_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        Me.Dispose()
    End Sub

    Private Sub SeleccionarPresentacion_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        FarmaciaId = 0
        vistaPresentaciones = PresentacionDAO.obtenerPresentaciones(0).DefaultView
        'FiltrarGrilla()
        CargarGrilla()
        CargarCombos()

        With dgvPresentaciones
            ' alternar color de filas  
            .AlternatingRowsDefaultCellStyle.BackColor = Color.FloralWhite
            .DefaultCellStyle.BackColor = Color.Beige
        End With

    End Sub

    Private Sub CargarCombos()
        'Combo Año
        cboAno.ValueMember = "AnoId"
        cboAno.DisplayMember = "Ano"
        cboAno.DataSource = Constante.obtenerAnos

        'Combo Mes 
        cboMes.ValueMember = "MesId"
        cboMes.DisplayMember = "Descripcion"
        cboMes.DataSource = MesDAO.comboFiltroMes

        'Combo ObraSocialXPlan
        cboObraSocial.ValueMember = "ObraSocialXPlanId"
        cboObraSocial.DisplayMember = "Descripcion"
        cboObraSocial.DataSource = ObraSocialXPlanDAO.comboFiltroObraSocialXPlan

    End Sub

    Private Sub CargarGrilla()

        dgvPresentaciones.DataSource = vistaPresentaciones
        dgvPresentaciones.Refresh()

        dgvPresentaciones.Columns("PresentacionId").Visible = False
        dgvPresentaciones.Columns("MesId").Visible = False
        dgvPresentaciones.Columns("FarmaciaId").Visible = False
        dgvPresentaciones.Columns("PresentacionFecha").Visible = False
        dgvPresentaciones.Columns("ObraSocialXPlanId").Visible = False
        dgvPresentaciones.Columns("EstadoPresentacionId").Visible = False
        dgvPresentaciones.Columns("EmpleadoAuditorId").Visible = False
        dgvPresentaciones.Columns("EmpleadoRecepcionId").Visible = False

        dgvPresentaciones.Columns("FarmaciaNombre").Width = 126
        dgvPresentaciones.Columns("Descripcion").Width = 178

        dgvPresentaciones.Columns("PresentacionAno").HeaderText = "Año"
        dgvPresentaciones.Columns("MesNombre").HeaderText = "Mes"
        dgvPresentaciones.Columns("FarmaciaNombre").HeaderText = "Farmacia"
        dgvPresentaciones.Columns("Descripcion").HeaderText = "Obra Social"
    End Sub

    Private Sub FiltrarGrilla()
        'Creamos el filtro para aquellos datos que comienzan con los textos buscados
        Dim filtro As String
        If FarmaciaId = 0 Then
            filtro = "PresentacionAno = " & cboAno.SelectedValue & "And (MesId = " & cboMes.SelectedValue & "OR " & cboMes.SelectedValue & " = 0) And (ObraSocialXPlanId = " & cboObraSocial.SelectedValue & "OR " & cboObraSocial.SelectedValue & " = 0)"
        Else
            filtro = "PresentacionAno = " & cboAno.SelectedValue & "And (MesId = " & cboMes.SelectedValue & "OR " & cboMes.SelectedValue & " = 0) And (ObraSocialXPlanId = " & cboObraSocial.SelectedValue & "OR " & cboObraSocial.SelectedValue & " = 0) And FarmaciaId = " & FarmaciaId.ToString
        End If        

        'Filtramos el listado de farmacias y cargamos la grilla nuevamente
        vistaPresentaciones.RowFilter = filtro

        CargarGrilla()
    End Sub

    Private Sub btnFiltrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFiltrar.Click
        FiltrarGrilla()
    End Sub

    Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
        frmSeleccionarFarmacia.frmLlamada = Me.Name
        frmSeleccionarFarmacia.ShowDialog()
    End Sub

    Private Function TodoOk() As Boolean
        Dim ok As Boolean = False
        Dim Ano As Integer
        Dim Mes As String
        Dim ObraSocial As String
        Dim Farmacia As String
        Dim PresentacionId As Integer

        'Si hay una fila seleccionada
        If dgvPresentaciones.SelectedRows.Count > 0 Then
            Ano = dgvPresentaciones.SelectedRows(0).Cells("PresentacionAno").Value()
            Mes = dgvPresentaciones.SelectedRows(0).Cells("MesNombre").Value
            ObraSocial = dgvPresentaciones.SelectedRows(0).Cells("Descripcion").Value
            Farmacia = dgvPresentaciones.SelectedRows(0).Cells("FarmaciaNombre").Value
            PresentacionId = dgvPresentaciones.SelectedRows(0).Cells("PresentacionId").Value


            Select Case frmLlamada
                Case "frmCargaNotasCredito"
                    frmCargaNotasCredito.txtAno.Text = Ano
                    frmCargaNotasCredito.txtMes.Text = Mes
                    frmCargaNotasCredito.txtOS.Text = ObraSocial
                    frmCargaNotasCredito.txtFarmacia.Text = Farmacia
                    frmCargaNotasCredito.PresentacionId = PresentacionId
                Case "frmCargaDebitos"
                    frmCargaDebitos.txtAno.Text = Ano
                    frmCargaDebitos.txtMes.Text = Mes
                    frmCargaDebitos.txtOS.Text = ObraSocial
                    frmCargaDebitos.txtFarmacia.Text = Farmacia
                    frmCargaDebitos.PresentacionId = PresentacionId
            End Select

            ok = True
        Else
            MsgBox("Seleccione primero una fila", MsgBoxStyle.Information)
        End If
        Return ok
    End Function

    Private Sub btnSeleccionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSeleccionar.Click
        If TodoOk() Then
            Me.Dispose()
        End If
    End Sub

    Private Sub dgvPresentaciones_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgvPresentaciones.DoubleClick
        If TodoOk() Then
            Me.Dispose()
        End If
    End Sub

End Class